#Copyright (c) 2025, Alibaba Cloud and its affiliates;
#Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#You may obtain a copy of the License at

#   http://www.apache.org/licenses/LICENSE-2.0

#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.



# -*- coding: UTF-8 -*-
import time
import json
from flask import current_app as app
from flask import request

def logging_opt(level, msg, opt=''):
    opts = app.config['obj']['operates']
    if opt == '':
        opt = request.path[ request.path.rindex( '/' ) + 1 : len( request.path ) ]

    if opt not in opts:
        # app.logger.info("%s not in %s", opt, opts)
        return
        
    msg = {
        'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + time.strftime('%z'),
        'ip' : request.remote_addr,
        'level': level,
        'operate' : opt,
        'message': msg,
    }
    if level == 'info':
        app.config["optLogger"].info(json.dumps(msg))
    elif level == 'error':
        app.config["optLogger"].error(json.dumps(msg))